﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ETC.DLEDLightingSystemPlus.Models
{
    public class TestItemResult : Bandit.UI.MVVM.NotifyObject
    {
        private int _Num;

        public int Num
        {
            get { return _Num; }
            set
            {
                _Num = value;
                OnPropertyChanged(nameof(Num));
            }
        }
        private string _TestItemCode;
        /// <summary>
        /// 代号
        /// </summary>
        public string TestItemCode
        {
            get { return _TestItemCode; }
            set
            {
                _TestItemCode = value;
                OnPropertyChanged("TestItemCode");
            }
        }
        private string _Name;
        /// <summary>
        /// 名称
        /// </summary>
        public string Name
        {
            get { return _Name; }
            set
            {
                _Name = value;
                OnPropertyChanged("Name");
            }
        }

        private bool _IsTestVisibility = true;
        /// <summary>
        /// 是否测试
        /// </summary>
        public bool IsTestVisibility
        {
            get { return _IsTestVisibility; }
            set
            {
                _IsTestVisibility = value;
                OnPropertyChanged("IsTestVisibility");
            }
        }


        private bool _IsTest = true;
        /// <summary>
        /// 是否测试
        /// </summary>
        public bool IsTest
        {
            get { return _IsTest; }
            set
            {
                _IsTest = value;
                OnPropertyChanged("IsTest");
            }
        }

        private bool _IsReaValue = true;
        /// <summary>
        /// 是否真实值
        /// </summary>
        public bool IsReaValue
        {
            get { return _IsReaValue; }
            set
            {
                _IsReaValue = value;
                OnPropertyChanged("IsReaValue");
            }
        }

        private Dictionary<string, object> _DicResult;

        public Dictionary<string, object> DicResult
        {
            get { return _DicResult; }

            set
            {

                _DicResult = value;

            }
        }

        private string _ResultValue = "";
        public string ResultValue
        {
            get { return _ResultValue; }
            set
            {
                _ResultValue = value;
                OnPropertyChanged(nameof(ResultValue));
            }
        }

        private string _Result = "";
        public string Result
        {
            get { return _Result; }
            set
            {
                _Result = value;
                OnPropertyChanged(nameof(Result));
            }
        }

        private int _SetMcValue;

        public int SetMcValue
        {
            get { return _SetMcValue; }
            set
            {
                _SetMcValue = value;
                OnPropertyChanged(nameof(SetMcValue));
            }
        }


        private int _SetDcValue;

        public int SetDcValue
        {
            get { return _SetDcValue; }
            set
            {
                _SetDcValue = value;
                OnPropertyChanged(nameof(SetDcValue));
            }
        }

       
        private int _SetBcValue;

        public int SetBcValue
        {
            get { return _SetBcValue; }
            set
            {
                _SetBcValue = value;
                OnPropertyChanged(nameof(SetBcValue));
            }
        }

        private int _SetScaleValue;

        public int SetScaleValue
        {
            get { return _SetScaleValue; }
            set
            {
                _SetScaleValue = value;
                OnPropertyChanged(nameof(SetScaleValue));
            }
        }

        private int _SetILedValue;

        public int SetILedValue
        {
            get { return _SetILedValue; }
            set
            {
                _SetILedValue = value;
                OnPropertyChanged(nameof(SetILedValue));
            }
        }

        private bool _IsSetScaleValue;

        public bool IsSetScaleValue
        {
            get { return _IsSetScaleValue; }
            set
            {
                _IsSetScaleValue = value;
                OnPropertyChanged("IsSetScaleValue");
            }
        }

        private bool _IsSetILedValue;

        public bool IsSetILedValue
        {
            get { return _IsSetILedValue; }
            set
            {
                _IsSetILedValue = value;
                OnPropertyChanged("IsSetILedValue");
            }
        }


        private Limit _Limit;
        /// <summary>
        /// 上限下限
        /// </summary>
        public Limit Limit
        {
            get { return _Limit; }
            set
            {
                _Limit = value;
                OnPropertyChanged("Limit");
            }
        }


        private string _Unit;

        public string Unit
        {
            get { return _Unit; }
            set
            {
                _Unit = value;
                OnPropertyChanged(nameof(Unit));
            }
        }
        private bool _IsSetValue = true;
        /// <summary>
        /// 是否设置值
        /// </summary>
        public bool IsSetValue
        {
            get { return _IsSetValue; }
            set
            {
                _IsSetValue = value;
                OnPropertyChanged("IsSetValue");
            }
        }

        private bool _IsSetMcValue;

        public bool IsSetMcValue
        {
            get { return _IsSetMcValue; }
            set
            {
                _IsSetMcValue = value;
                OnPropertyChanged("IsSetMcValue");
            }
        }

        private bool _IsSetDcValue;

        public bool IsSetDcValue
        {
            get { return _IsSetDcValue; }
            set
            {
                _IsSetDcValue = value;
                OnPropertyChanged("IsSetDcValue");
            }
        }

        private bool _IsSetBcValue;

        public bool IsSetBcValue
        {
            get { return _IsSetBcValue; }
            set
            {
                _IsSetBcValue = value;
                OnPropertyChanged("IsSetBcValue");
            }
        }

        private bool _IsSetCurrentValue = false;
        /// <summary>
        /// 是否设置电流值
        /// </summary>
        public bool IsSetCurrentValue
        {
            get { return _IsSetCurrentValue; }
            set
            {
                _IsSetCurrentValue = value;
                OnPropertyChanged("IsSetCurrentValue");
            }
        }


        private double _SetCurrentValue;
        /// <summary>
        /// 设置电流值
        /// </summary>
        public double SetCurrentValue
        {
            get { return _SetCurrentValue; }
            set
            {
                _SetCurrentValue = value;
                OnPropertyChanged("SetCurrentValue");
            }
        }

        private string _RealityCurrentValue;
        /// <summary>
        /// 实际电流值
        /// </summary>
        public string RealityCurrentValue
        {
            get { return _RealityCurrentValue; }
            set
            {
                _RealityCurrentValue = value;
                OnPropertyChanged("RealityCurrentValue");
            }
        }

        private bool _IsSetCompensationValue = false;
        /// <summary>
        /// 是否设置补偿
        /// </summary>
        public bool IsSetCompensationValue
        {
            get { return _IsSetCompensationValue; }
            set
            {
                _IsSetCompensationValue = value;
                OnPropertyChanged("IsSetCompensationValue");
            }
        }

        private double _SetCompensationValue;
        /// <summary>
        /// 设置补偿值
        /// </summary>
        public double SetCompensationValue
        {
            get { return _SetCompensationValue; }
            set
            {
                _SetCompensationValue = value;
                OnPropertyChanged("SetCompensationValue");
            }
        }

        private int _DelayTime = 1000;

        public int DelayTime
        {
            get { return _DelayTime; }
            set
            {
                _DelayTime = value;
                OnPropertyChanged(nameof(DelayTime));
            }
        }
        private string _Remark;
        public string Remark
        {
            get { return _Remark; }
            set
            {
                _Remark = value;
                OnPropertyChanged(nameof(Remark));
            }
        }
        public TestItemResult() { }

        public TestItemResult(int num, string testItemCode, string name, bool isTestVisibility, bool isTest,bool isSetCurrentValue, double setCurrentValue,bool isSetMC, int iMCValue,bool isSetDC,int iDCValue,bool isSetBC,int iBCValue, bool isSetScale, int setScaleValue, bool isSetIled, int setILEDValue, string dRealityCurrentValue, int delayTime, Limit limit, string unit,bool isReaValue, bool isSetCompensationValue, double setCompensationValue)
        {
            this.Num = num;
            this.TestItemCode = testItemCode;
            this.Name = name;
            this.IsTestVisibility = isTestVisibility;
            this.IsTest = isTest;
            this.DelayTime = delayTime;

            this.Limit = limit;

            this.IsSetCurrentValue = isSetCurrentValue;
            this.SetCurrentValue = setCurrentValue;


            this.IsSetMcValue= isSetMC;
            this.SetMcValue = iMCValue;

            this.IsSetDcValue= isSetDC;
            this.SetDcValue = iDCValue;
            
            this.IsSetBcValue= isSetBC;
            this.SetBcValue = iBCValue;

            this.IsSetScaleValue = isSetScale;
            this.SetScaleValue = setScaleValue;
            this.IsSetILedValue = isSetIled;
            this.SetILedValue = setILEDValue;

            this.RealityCurrentValue = dRealityCurrentValue;

            this.Unit= unit;

            this.IsReaValue = isReaValue;

            this.IsSetCompensationValue = isSetCompensationValue;
            this.SetCompensationValue = setCompensationValue;
        }
    }
}
